// 路由守卫
// 引入路由
import router from './index.js'
// 引入store
import store from '../store/index.js'
import { Message } from 'element-ui'
// 不需要守卫的页面放到白名单
const whiteList = ['/login']
console.log(whiteList)

// 添加的只有超级管理员才能访问的页面路径
const typeList = ['/account/add', '/account/list']

/*
全局守卫 （全局前置守卫、全局后置钩子、全局解析守卫）、组件级守卫（进入组件的守卫、离开组件的守卫、修改组件的守卫）、路由独享守卫
*/
router.beforeEach((to, from, next) => {
  console.log('路由守卫运行了', to, from, next)
  if (store.getters.token) {
    // 如果已经登录
    if (to.path == '/login') {
      next('/home/dashboard')
    } else if (typeList.indexOf(to.path) != -1) { // 判断该页面是不是1超级管理才能访问的页面
      if (store.getters.type == '1') { // 超级管理员
        next()
      } else {
        // 非超级管理员
        console.log('退出登录')
        Message.error('您没有权限访问页面，请使用超级1管理员账号重新登录')
        // 发送退出登录的动作
        store.dispatch('LogoutAction')
        next('/login')
      }
    } else {
      next()
    }
  } else {
    // 若没有登录
    if (whiteList.indexOf(to.path) != -1) {
      next()
    } else {
      next('/login')
    }
  }
})
